package com.vhall.component.controller.account.facade.adm;

import com.vhall.component.entity.account.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * 操作admin
 *
 * @author lsl
 * @since 2021.7.30 11:02
 */
@FeignClient(value = "AdmInfoFacade", path = "/v4/account/admin/adm-info")
public interface AdmInfoFacade {


    /**
     * 获取管理员信息详情
     *
     * @param reqVo
     * @return
     */
    @GetMapping(value = "/get")
    AdminGetInfoRspVo get(@Validated AdminGetInfoReqVo reqVo);

    /**
     * 获取管理员列表
     *
     * @param reqVO
     * @return
     */
    @GetMapping("/list")
    AdminListRspVO list(@Validated AdminListReqVO reqVO);

    /**
     * 修改密码
     *
     * @param reqVO 参数
     * @return 返回值
     */
    @PostMapping("/edit-password")
    Boolean editPassword(@Validated AdmEditPasswordReqVO reqVO);

    /**
     * 删除管理员信息
     *
     * @param reqVO
     * @return
     */
    @GetMapping("/delete")
    List<Integer> delete(@Validated AdmDeleteReqVO reqVO);

    /**
     * 修改管理员的账户状态
     *
     * @param reqVO
     * @return
     */
    @PostMapping("/edit-status")
    Boolean editStatus(@Validated AdmEditStatusReqVO reqVO);

    /**
     * 编辑管理员信息
     *
     * @param vo
     * @return
     */
    @PostMapping("/edit")
    Boolean edit(@Validated AdmEditReqVO vo);

    /**
     * 创建管理员
     *
     * @param reqVO
     * @return
     */
    @PostMapping("/add")
    AdminAddRspVO add(@Validated AdminAddReqVO reqVO);

}
